home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2002 #11
/
Amiga Plus CD - 2002 - No. 11.iso
/
Tools
/
ShareMailGiftware
/
AmigaTalk
/
system
/
Exec.st
< prev
next >
Wrap
Text File
|
2002-10-27
|
6KB
|
194 lines
" -------------------------------------------------------------------------- "
" Executive Class allows the User access to the functions from exec.library. "
" If you do not know what they do, expect your System to freeze up solid!! "
""
" Primitive methods pertaining to MsgPorts have been moved to MsgPort.st "
" -------------------------------------------------------------------------- "
Class Executive :Object
[
initCode: startClass version: versionNum
<primitive 209 4 25 startClass versionNum>
|
initStruct: initTableObj with: memoryObj size: size
<primitive 209 4 26 initTableObj memoryObj size>
|
makeFunctionsIn: targetObj with: funcArrayObj displacement: funcDispBase
<primitive 209 4 28 targetObj funcArrayObj funcDispBase>
|
findResidentNamed: nameString
^ <primitive 209 4 29 nameString>
|
initResident: residentObj segments: segList
^ <primitive 209 4 30 residentObj segList>
|
alertDisplay: alertNumber
" Use the Alert Class instead!! "
<primitive 209 4 31 alertNumber>
|
callDebug: dbgFlags
<primitive 209 4 32 dbgFlags>
|
createIORequest: msgPortObj size: size
^ <primitive 209 4 49 msgPortObj size>
|
deleteIORequest: ioRequestObj
<primitive 209 4 50 ioRequestObj>
|
addDevice: deviceObj
<primitive 209 4 51 deviceObj>
|
removeDevice: deviceObj
<primitive 209 4 52 deviceObj>
|
doIO: ioRequestObj
^ <primitive 209 4 53 ioRequestObj>
|
sendIO: ioRequestObj
<primitive 209 4 54 ioRequestObj>
|
checkIO: ioRequestObj
^ <primitive 209 4 55 ioRequestObj>
|
waitIO: ioRequestObj
^ <primitive 209 4 56 ioRequestObj>
|
abortIO: ioRequestObj
<primitive 209 4 57 ioRequestObj>
|
addResource: resourceObj
<primitive 209 4 58 resourceObj>
|
removeResource: resourceObj
<primitive 209 4 59 resourceObj>
|
openResource: resourceName
^ <primitive 209 4 60 resourceName>
|
getConditionCodes
^ <primitive 209 4 61>
|
sumKickData
^ <primitive 209 4 75>
|
addMemList: size attrs: attributes priority: pri base: baseObj named: name
<primitive 209 4 76 size attributes pri baseObj name>
|
cacheClearU
<primitive 209 4 77>
|
cacheClearE: addressObj length: length caches: caches
<primitive 209 4 78 addressObj length caches>
|
cacheControl: cacheBits with: cacheMask
^ <primitive 209 4 79 cacheBits cacheMask>
|
coldReboot
<primitive 209 4 85>
|
stackSwap: stackSwapStructObj
<primitive 209 4 86 stackSwapStructObj>
|
rawDoFormat: fmtStr to: dataStreamObj renderFunction: putChFuncObj data: putChData
^ <primitive 209 4 87 fmtStr dataStreamObj putChFuncObj putChData>
|
addMemHandler: interruptObj
<primitive 209 4 88 interruptObj>
|
removeMemHandler: interruptObj
<primitive 209 4 89 interruptObj>
]
" to be added later:
** ULONG Supervisor( ULONG (* CONST userFunction)() );
** These are just asking for trouble!!:
** VOID Disable( VOID ); // Disables interrupts & task-switching!
** VOID Enable( VOID );
** VOID Forbid( VOID ); // Task switching only, NOT interrupts!
** VOID Permit( VOID );
** ULONG SetSR( ULONG newSR, ULONG mask );
** APTR SuperState( VOID );
** VOID UserState( APTR sysStack );
**
** struct Interrupt *SetIntVector( LONG intNumber,
** CONST struct Interrupt *interrupt
** );
**
** VOID AddIntServer( LONG intNumber, struct Interrupt *interrupt );
** VOID RemIntServer( LONG intNumber, struct Interrupt *interrupt );
** VOID Cause( struct Interrupt *interrupt );
** APTR CachePreDMA( CONST APTR address, ULONG *length, ULONG flags );
** VOID CachePostDMA( CONST APTR address, ULONG *length, ULONG flags );
** ULONG ObtainQuickVector( APTR interruptCode );
** LONG AllocTrap( LONG trapNum );
** VOID FreeTrap( LONG trapNum );
"
" ----------------------------------------------------------------------- "
" AVLTree Class implements some new Exec functions in OS3.9. "
""
" WARNING "
" The compareKeyFuncObj might be broken, since the AutoDocs are as clear"
" as mud. "
" ----------------------------------------------------------------------- "
Class AVLTree :Object ! compareFuncObj compareKeyFuncObj !
[
addAVLNode: avlNodeObj to: avlRootNode function: funcObj
^ <primitive 209 4 91 avlRootNode avlNodeObj funcObj>
|
removeAVLNode: avlNodeObj from: avlRootNode
^ <primitive 209 4 92 avlRootNode avlNodeObj>
|
removeAVLNode: avlKeyObj from: avlRootNode function: funcObj
^ <primitive 209 4 93 avlRootNode avlKeyObj funcObj>
|
findAVLNode: avlKeyObj in: avlRootNode function: funcObj
^ <primitive 209 4 94 avlRootNode avlKeyObj funcObj>
|
findPrevAVLNode: avlNodeObj
^ <primitive 209 4 95 avlNodeObj>
|
findPrevAVLNode: avlKeyObj in: avlRootNode function: funcObj
^ <primitive 209 4 96 avlRootNode avlKeyObj funcObj>
|
findNextAVLNode: avlNodeObj
^ <primitive 209 4 97 avlNodeObj>
|
findNextAVLNode: avlKeyObj in: avlRootNode function: funcObj
^ <primitive 209 4 98 avlRootNode avlKeyObj funcObj>
|
findFirstAVLNode: avlRootNode
^ <primitive 209 4 99 avlRootNode>
|
findLastAVLNode: avlRootNode
^ <primitive 209 4 100 avlRootNode>
|
getDefaultCompareFunction
" Use the return from this method for funcObj in
* addAVLNode:to:function: method.
"
^ compareFuncObj <- <primitive 209 4 103>
|
getDefaultKeyCompareFunction
" See WARNING above "
^ compareKeyFuncObj <- <primitive 209 4 104>
|
avlNodeCompare: avlNode1 with: avlNode2
" Note that the compare function works like strcmp() by returning
* < 0, 0, > 0 results to define a less/equal/greater relationship.
* However, this method can also return nil if either argument is nil.
"
^ <primitive 209 4 101 avlNode1 avlNode2>
|
avlKeyCompare: avlKey1 with: avlKey2
" Note that the compare function works like strcmp() by returning
* < 0, 0, > 0 results to define a less/equal/greater relationship.
"
^ <primitive 209 4 102 avlKey1 avlKey2>
]